The tendency of files recorded onto a hard drive of a computing system to become fragmented over time is well known. It is recognized, qualitatively, that hard drive fragmentation reduces a speed of certain disk input/output (I/O) operations. Users of many types of computing systems are instructed to periodically use disk defragmentation tools to help address performance degradation arising from fragmented files written to and accessed from the hard drive. Since these tools are not available on all platforms, and the frequency and/or timeliness of application of these tools is not assured in many environments, it is likely that some degree of fragmentation exists on most consumer systems.
However, in planning machine requirements or server capacity, particularly for new system designs, allowance is made for some degradation of disk I/O performance over time. The magnitude of the performance degradation related to varying degrees of fragmentation is not at all known, and it is very difficult to determine, a priori, what specific effect will be manifested for a specific degree of fragmentation. In some cases, a degree of file fragmentation that causes little degradation can cause extreme degradation in another environment.
Part of the difficulty in evaluating the relationship between disk I/O performance and file fragmentation is that a response time of any given software or hardware function may depend upon a wide variety of factors, not just disk I/O performance. For example, network turnaround, physical device wait conditions, multithread locks, or human operator interaction may dominate the performance of a particular function.
U.S. Pat. No. 5,778,392 describes an algorithm that scatters files already existing on a disk across a disk in order to fragment it. U.S. Pat. No. 5,857,101 describes a method for breaking files into fragments in order to store them in page-accessed order. U.S. Pat. No. 5,727,185 includes a method for subdividing available storage into two or more categories with the ability to shift free space between the categories.
Accordingly, what is needed is a system and method for intentionally producing varying degrees of hard file fragmentation on a hard drive of a test system to assist in the evaluation and measurement of disk I/O performance as a function of file fragmentation. The present invention addresses such a need.